import java.util.InputMismatchException;
import java.util.Scanner;

public class GuessNumber {
    public static void main(String[] args) {
        System.out.println("欢迎来到猜数字游戏！");
        Scanner scan = new Scanner(System.in);

        // 外层循环：控制是否重新开始游戏
        while (true) {
            // 1. 生成答案数字 (1-100)
            int answer = (int) (Math.random() * 100 + 1);
            int chances = 7; // 总机会次数
            boolean isWin = false; // 标记本轮是否猜对

            System.out.println("游戏开始！我已经想好了一个1-100之间的数字。");

            // 内层循环：控制单轮游戏中的猜测过程
            while (chances > 0) {
                System.out.println("你还有 " + chances + " 次机会，请输入你的猜测：");

                int guess;
                try {
                    // 读取用户输入的数字
                    guess = scan.nextInt();
                } catch (InputMismatchException e) {
                    // 处理输入非数字的情况
                    System.out.println("输入错误！请输入一个整数。");
                    scan.next(); // 清除扫描器中的错误输入，避免死循环
                    continue; // 跳过本次循环的后续代码，重新开始猜测
                }

                // 判断猜测结果
                if (guess > answer) {
                    System.out.println("猜大了！");
                } else if (guess < answer) {
                    System.out.println("猜小了！");
                } else {
                    // 猜对了
                    System.out.println("恭喜你，猜对了！答案就是 " + answer + "！");
                    isWin = true;
                    break; // 跳出内层循环，结束本轮游戏
                }

                chances--; // 减少一次机会
            }

            // 处理机会用完的情况
            if (!isWin) {
                System.out.println("很遗憾，机会用完了。正确答案是：" + answer);
            }

            // 询问是否再玩一次
            System.out.println("是否再玩一次？(输入 y 继续，其他任意键退出)");
            String choice = scan.next();

            if (!choice.equalsIgnoreCase("y")) {
                System.out.println("游戏结束，欢迎下次再来！");
                break; // 跳出外层循环，结束程序
            }
        }
        scan.close(); // 关闭Scanner，释放资源
    }
}